                                NetDoom
                                =======
Version 1.10 (28 Dec 1998)

Introduction
------------

Doom is a good game. But without network drivers it's nothing much... well,
apart from running a couple of times faster than Quake of course :-)

Network Doom allows you to play Doom across the internet. It's as simple as
that.


Usage
-----

Run NetDoom.

Negotiate (via other means - ttylink, IRC, phone, yelling down the corridor,
etc) who is going to be the controller. Now enter the names of all the
machines into the boxes. Box 1 should always be your host name. Make sure
that the button is pressed beside the controllers name.

When complete, press Ok. Now start Doom.

The controller should select the network options he/she requires and then
press 'DOOM' to start the game.


Sites menus
-----------

The menus beside the entry boxes allow you to use a set of preset sites to
use in the game. To edit these, use the 'Sites...' menu option. The SiteEdit
program has a separate help file associated with it, but should be pretty
intuitive in any case.


Playing via a vanilla Acorn Access Network
------------------------------------------

The good news for Access users is that it is TCP/IP-based.  Although Access
only usually uses a cut-down internet stack, it's good enough to run NetDoom
over.  Or at least, it is here!

Here's how:
  
  1) Open a task window (most convenient) or press F12 for a command line

  2) Type FWShow
  
  3) This lists two sets of information - the Hosts and the Discs.  The hosts
     are all the machines currently visible on the network.  Your machine
     is marked with a *, note down your ip number (1.x.x.x).  You can use the
     Discs list to find the IP number of other machines.
     
  4) Load NetDoom, and enter the numeric ip addresses of machines in the
     boxes provided.  Make sure you enter the current machine's IP address
     in the Me box, and get the server radio button down the left hand side
     set correctly.
     
  5) Repeat for other machines
  
  6) Launch Doom and Enjoy!           


Playing via a null modem lead
-----------------------------

Although there is a driver currently in development for serial networking
Doom, you can still play using TCP/IP across a null serial line.

To do this, you require two Acorns, a null modem lead, !Helener
application, a serial driver (PPP or SLIP), a dialler and some time.
A simpler solution is to use the !SDoom application.

Instructions are included in !Helener for setting up the server and dialler.
Once connected, you should be able to play NetDoom across a serial line.


Resolvers
---------

In general internet applications require a resolver to be present. The same
holds for an intranet. NetDoom will work without a resolver but you must
enter the IP addresses of the machines you wish to connect to, instead of
the host names.

If NetDoom discovers that you have not got a Resolver loaded, it will attempt
to load one. It will warn you if you have no resolver on your system, and
if it has loaded one for you.


Network options
---------------

On some slower networks it may be necessary to increase the number of packets
sent at a time, or to include 'backups' in case some were lost. This can be
done from the options window, available from the 'Options...' menu option.

Increasing the number of 'tics' will make games less jerky but may not be
possible if the network does not allow large packets. Backup packets will
enable 'lost' packets to be recovered without retransmission requests being
needed.

You will need to experiment with these before a suitable setting for your
network can be found.


Problems
--------

'NetUpdate: netbuffer->numtics > BACKUPTICS'
  The network speed is too slow (or too fast)
  Change the number of tics sent and backup tics
  Computers of vastly differing speeds may have this problem (or those on
  slow lossy networks.

'consistency failure (# should be #)'
  The options specified exceed the network capabilities.
  Try reducing the number of tics or removing the backup tics.

'bad packet checksum'
  The network driver is faulty - consult your supplier

'bad packet length #'
  The network driver is faulty - consult your supplier

'Different DOOM versions cannot play a net game!'
  Different DOOM versions cannot play a net game.

The game is 'lumpy', or becomes 'lumpy' after a period
  You are probably trying to use differing computers with a lossy
  connections. The 'lumps' of data are the points at which the slower
  computer manages to catch up.
  The speed of the game is determined by the slower of the frame rate and the
  incoming/outgoing packet processing speed. Where the latter exceeds the
  former, the game will appear to run slower.

I get 'Module DOOMSupport not found' when loading the network driver
  You've either broken the copy of Doom you have, or (Justin) you've run
  the wrong !Doom application.

W_DeleteWin gives some kind of error when I start the game
  This sometimes happens. It appears to be some code that deletes a window
  that has never been created on startup. It only happens on NetDoom. It
  happens less with Doom 1.01, but does still happen.
  Try again, re-loading NetDoom before running Doom.

Doom claims the drivers are loaded, but when it tries to run the machine
either crashes, or just hangs waiting for start information.
  This will not happen with Doom+.

I get a black screen which stays on both machines.
  Something has gone wrong in synchronisation. Try F10, Y. That should quit
  and the other machines should be released.

I'm trying it on three (or four) machines and ...
  Setting up > 2 machine Doom has been something of a headache. However,
  the method that was found to work was to list the nodes in such a way
  that :
   Machine 1. Controller = Me, other three machines in any order
   Machine 2. Controller = Machine 1, in the second slot.
   Machine 3. Controller = Machine 1, in the third slot.
   Machine 4. Controller = Machine 1, in the fourth slot.
  
  Remember that you are always in slot 1.

Whilst starting the game, the display is very jerky.
  This has been observed. However, it can be that this is the 'initialisation
  lag', where the fact that all the machines are starting up into the game
  and caching screens means that the network is swamped as soon as they do
  reach the game. After about 10 or 20 seconds the motion should settle so
  that you can play more normally. If this is not the case, modify the tics
  and backup tics.

Can I get two copies of Doom running networked on the same machine ?
  Do you want the short answer or the long one ?
  Short answer: No.
  Long answer:  Noooooooooooooooooooooooooooooooooooo.
                Well, you can. But it's not easy. If you fancy playing with
                the insides of the executable, the Doom support module, the
                Doom network module and then configuring virtual interfaces
                you can do it. HOWEVER, just because it can be done doesn't
                mean its sensible.

Can we get drones to work ?
  Probably not.
  Drones are a kind of hang over from an early beta of the game. It is
  possible that they may be implemented in future, but it all depends on
  what else needs doing. They will, of course, need a seperate configuration
  utility.

How about sliding doors ?
  Good film. Oh them.
  They are a problem. They're partially implemented, but nothing uses them,
  and they are compiled out. I once got them working on a unix version, but
  they looked awful so I forgot about them.
  You can't have them.

How do I look up and down ?
  You don't.
  You're thinking of another game, not Doom.  

Does disabling the StrongARM optimisations speed up the game ?
  By about 1-2 fps on non-SA machines.  Not at all on SA machines

How do I check the frame rate ?
  At present, you don't. This feature may be re-enabled in future.


Advanced use
------------

You need not read this section if you wish only to play the game; it is
intended for front-end authors and people setting up automated start
sequences.

To initialise NetDoom, /without/ running the front-end, you should run
!NetDoom with the command line parameter '-quit', eg '*Run <NetDoom$Dir>.!Run
-quit'. Once initialised, the DoomSupport and DoomNetwork modules will have
been safely loaded.

There are a number of *Commands you may use to initialise the system :
  
*DoomAddNode <node> <name>|<dotted ip>
   Add a node to the network.
   <node> is the node number to set (0-3)
   <name> is the host name to use
   <dotted ip> is a dotted IP address

*DoomConsole <node>
   Declares who is on the 'console' - ie the controller.

*DoomNodes
   List the current nodes set.

*DoomNoPolling <flag>
   Specifies that we should not poll the Wimp during the setup stage.
   <flag> may be 0 or 1

In addition, there are a number of SWI calls you may use to control the system.


DOOMNetwork_SetNode (&51440)
=> R0 = node number
   R1 = pointer to node name, or 0 to unset

Sets up a node (as *DoomAddNode).


DOOMNetwork_ReadNodes (&51441)
<= R0 = pointer to nodes block
        +0  Pointer to node 0 name, or 0 if unset
        +8  Pointer to node 1 name, or 0 if unset
        +16 Pointer to node 2 name, or 0 if unset
        +24 Pointer to node 3 name, or 0 if unset

Read the nodes table. You should only read from this table, not alter it
directly.


DOOMNetwork_SetConsole (&51442)
=> R0 = console node

Sets the console node (as *DoomConsole).


DOOMNetwork_ReadConsole (&51443)
<= R0 = console node

Reads the console node.


DOOMNetwork_SetNetOptions (&51444)
=> R0 = number of tics
   R1 = backup tics (flag)

Sets up particular network options.


NOTE: These SWIs and commands should not be relied on, and may change without
notice. The SWI block is registered.


Disclaimer
----------

The author accepts no responsibility for any problems which this application
may cause or loss of data resulting in its use. This application is Freeware.
This means that it may be distributed, so long as no charge other than
copying costs are charged for it. The copyright remains with myself (Justin
Fletcher).


Contact
-------

Network Drivers:

E-Mail : doom@thevillage.ndirect.co.uk
IRC    : On #Acorn as Gerph
Tel    : (01842) 812276

Snail Mail :
    Justin Fletcher
    Galadriel
    17b Cromwell Road,
    Weeting,
    Brandon,
    Suffolk.
    IP27 0QT


Acorn Doom:
  
E-Mail : doom@rcomp.co.uk
Tel    : (+44) (0)1925 755043

Snail Mail :
  R-Comp Interactive
  22 Robert Moffat
  High Legh
  Knutsford
  Cheshire
  WA16 6PS
  England


History
-------
Version 1.00 : 18 Jun 1998
               First version written
               Some people want the moon on a stick...

Version 1.01 : 20 Jun 1998
               Options window added, fixed a few minor bugs.
               Poetry skills not required (or used!)
               'Problems' section added.

Version 1.02 : 21 Jun 1998
               Main launcher unchanged, updated module should get rid of the
               'Pooh' bug, and I've also added a new *Command - *DoomNoPolling
               Syntax: DoomNoPolling [0|1]
               0 enables the polling whilst the setup packets are sent out,
               1 disables polling whilst the setup packets are sent out.
               
               The latter allows you to play with the game in Network mode
               without actually having a network.
               
               No problems have been observed with Doom killing applications
               /except/ during startup if Doom cannot claim enough memory.

Version 1.03 : 22 Jun 1998
               Added 'No resolver module' code. Fixed bugs in the module which
               caused it to abort with stack problems during start up.

Version 1.04 :23 Jun 1998
               Added !SiteEdit application to provide a list of aliases. It's
               nice when your old applications have been so well thought out
               that they can just be bolted in to the new ones to make them
               more useful :-)
               Added !Help support (well, actually added the details).
               Incorporated Andrews changes to the !Help file to my master.
               Added details about the sites menus.
               Added details about the options window.

Version 1.05 : 24 Jun 1998
               Intelligent IP address finder added. Checks all currently known
               system variables for IP addresses. Actual ordering is :
                 Inet$Hostname [+ Inet$LocalDomain]
                 Inet$EtherIPAddr
                 Inet$EcoIPAddr
                 Inet$SerialIPAddr
                 VTiIP$Address
                 Inet$LocalAddr
               These may be in hex, decimal, dotted IP, or FQHN.
               Simplistic checks are used to identify them.
               Documented SWI and commands supported by the DoomNetwork
               module.

Version 1.06 : 27 Jun 1998
               Disabled decimal IP addresses...

Version 1.07 : 14 Jul 1998
               How to set up a null modem connection details added to the
               !Help file - no significant changes made to the program.

Version 1.08 : 04 Oct 1998
               Update to driver module. Should make life more reliable now.
               Removed note about not intending the program to run on non-
               RISC PCs.
               Corrected missed words in !Help file. Updated the problems
               section.
               Updated email address.

Version 1.09 :11 Oct 1998
               Updated for new network specification. This means restarting
               network games will now be more reliable.

Version 1.10 : 28 Dec 1998
               Updated for Heretic (Help file unchanged)
